<?php
/**
 * @link https://ym2.cleverstone.top
 * @copyright Copyright (c) 2020 Yii Manager Software LLC
 */

namespace builder\form\util;

use builder\form\HelperInterface;
use builder\form\util\control\Checkbox;
use builder\form\util\control\Date;
use builder\form\util\control\Datetime;
use builder\form\util\control\dctrl\DynamicControl;
use builder\form\util\control\dselect\SelectDynamic;
use builder\form\util\control\File;
use builder\form\util\control\Hidden;
use builder\form\util\control\Month;
use builder\form\util\control\Number;
use builder\form\util\control\Password;
use builder\form\util\control\Radio;
use builder\form\util\control\Range;
use builder\form\util\control\RichText;
use builder\form\util\control\Section;
use builder\form\util\control\Select;
use builder\form\util\control\SelectLink;
use builder\form\util\control\Star;
use builder\form\util\control\StaticText;
use builder\form\util\control\Sw;
use builder\form\util\control\Tag;
use builder\form\util\control\Text;
use builder\form\util\control\Textarea;
use builder\form\util\control\Time;
use builder\form\util\control\trigger\Trigger;
use builder\form\util\control\vlink\ValueLink;
use builder\form\util\control\xselect\Xselect;
use builder\form\util\control\xselect\XselectCascader;
use builder\form\util\control\xselect\XselectRemote;
use builder\form\util\control\xselect\XselectTree;
use builder\form\util\control\Year;

/**
 * 表单控件助手
 * @author cleverstone
 * @since ym2.0
 */
class ControlHelper implements HelperInterface
{
    /**
     * @return Checkbox
     */
    public function checkbox()
    {
        return new Checkbox();
    }

    /**
     * @return Date
     */
    public function date()
    {
        return new Date();
    }

    /**
     * @return Datetime
     */
    public function datetime()
    {
        return new Datetime();
    }

    /**
     * @return File
     */
    public function file()
    {
        return new File();
    }

    /**
     * @return Hidden
     */
    public function hidden()
    {
        return new Hidden();
    }

    /**
     * @return Month
     */
    public function month()
    {
        return new Month();
    }

    /**
     * @return Number
     */
    public function number()
    {
        return new Number();
    }

    /**
     * @return Password
     */
    public function password()
    {
        return new Password();
    }

    /**
     * @return Radio
     */
    public function radio()
    {
        return new Radio();
    }

    /**
     * @return Range
     */
    public function range()
    {
        return new Range();
    }

    /**
     * @return RichText
     */
    public function richText()
    {
        return new RichText();
    }

    /**
     * @return Select
     */
    public function select()
    {
        return new Select();
    }

    /**
     * @return SelectLink
     */
    public function selectLink()
    {
        return new SelectLink();
    }

    /**
     * @return StaticText
     */
    public function staticText()
    {
        return new StaticText();
    }

    /**
     * @return Sw
     */
    public function sw()
    {
        return new Sw();
    }

    /**
     * @return Text
     */
    public function text()
    {
        return new Text();
    }

    /**
     * @return Textarea
     */
    public function textarea()
    {
        return new Textarea();
    }

    /**
     * @return Time
     */
    public function time()
    {
        return new Time();
    }

    /**
     * @return Year
     */
    public function year()
    {
        return new Year();
    }

    /**
     * @return Section
     */
    public function section()
    {
        return new Section();
    }

    /**
     * @return Tag
     */
    public function tag()
    {
        return new Tag();
    }

    /**
     * @return Trigger
     */
    public function trigger()
    {
        return new Trigger();
    }

    /**
     * @return ValueLink
     */
    public function valueLink()
    {
        return new ValueLink();
    }

    /**
     * @return SelectDynamic
     */
    public function selectDynamic()
    {
       return new SelectDynamic();
    }

    /**
     * @return DynamicControl
     */
    public function dynamicControl()
    {
        return new DynamicControl();
    }

    /**
     * @return Xselect
     */
    public function xselect()
    {
        return new Xselect();
    }

    /**
     * @return XselectTree
     */
    public function xselectTree()
    {
        return new XselectTree();
    }

    /**
     * @return XselectRemote
     */
    public function xselectRemote()
    {
        return new XselectRemote();
    }

    /**
     * @return XselectCascader
     */
    public function xselectCascader()
    {
        return new XselectCascader();
    }

    /**
     * @return Star
     */
    public function star()
    {
        return new Star();
    }
}